package com.xm.service.reception_desk;

import com.xm.dao.reception_desk.AccountDao;
import com.xm.dao.reception_desk.AccountInformationDao;
import com.xm.exception.SqlErrorException;


/**
 * Account的Service层
 * @author 康文程
 * @date 2023-12-13 上午 08:08
 */
public class AccountService {
    private final AccountDao dao = new AccountDao();
    private final AccountInformationDao accountInformationDao = new AccountInformationDao();
    /**
     * 根据账号和密码查询账户信息
     * @param account 账号，可以是 account_id、phone 或者 mailbox
     * @param password 密码
     * @return 返回 true 表示账号和密码匹配，返回 false 表示不匹配或者查询失败
     */
    public String checkAccount(String account, String password) throws SqlErrorException {
        return dao.checkAccount(account, password);
    }
    /**
     * 手机号和密码注册
     * @param phone 手机号
     * @param password 密码
     * @return true新增成功 false新增失败
     * @throws SqlErrorException 错误抛出
     */
    public int addPhoneAccount(String phone, String password) throws SqlErrorException {
        return dao.addPhoneAccount(phone, password);
    }
    /**
     * 邮箱和密码注册
     *
     * @param mailbox  邮箱
     * @param password 密码
     * @return int 主键id
     * @throws SqlErrorException 错误抛出
     */
    public int addMailboxAccount(String mailbox, String password) throws SqlErrorException {
        return dao.addMailboxAccount(mailbox, password);
    }
    /**
     * 邮箱已存在
     * @param mailbox 邮箱
     * @return false 不存在 true 存在
     * @throws SqlErrorException 抛出SQL语法错误
     */
    public boolean checkMailboxExist(String mailbox) throws SqlErrorException {
        return dao.checkMailboxExist(mailbox);
    }
    /**
     * 手机号是否已存在
     * @param phone 手机号
     * @return true存在 false不存在
     * @throws SqlErrorException 抛出错误
     */
    public boolean checkPhoneExist(String phone) throws SqlErrorException {
        return dao.checkPhoneExist(phone);
    }
    /**
     * 手机号是否已存在
     * @param phone 手机号
     * @param password 密码
     * @return true存在 false不存在
     * @throws SqlErrorException 抛出错误
     */
    public boolean account(String phone,String password,int informationId) throws SqlErrorException {
        return dao.account(phone,password,informationId);
    }
    /**
     * 用户订单数量
     * @param informationId 用户ID
     * @return 订单数量
     * @throws SqlErrorException 抛出错误
     */
    public int count(int informationId) throws SqlErrorException {
        return dao.count(informationId);
    }

    /**
     * 用户注销
     * @param informationId 用户编号
     * @return true删除成功 false删除失败
     * @throws SqlErrorException 抛出错误
     */
    public boolean accountDelete(int informationId) throws SqlErrorException {
        return dao.accountDelete(informationId);
    }
}
